package code1.hash;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

/**
 * 原题链接：https://leetcode.cn/problems/4sum-ii/description/
 */
public class P454 {

    //hash表经典题目
    public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
        Map<Integer,Integer> map=new HashMap<>();       //key为nums1与nums2中的两数之和，value为其出现的次数
        int n=nums1.length;
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(map.get(nums1[i]+nums2[j])==null){
                    map.put(nums1[i]+nums2[j],1);
                }else{
                    map.put(nums1[i]+nums2[j],map.get(nums1[i]+nums2[j])+1);
                }
            }
        }
        int count=0;
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(map.get(-(nums3[i]+nums4[j]))!=null){        //若map中存在-(nums3[i]+nums4[j])，则说明当前满足条件
                    count+=map.get(-(nums3[i]+nums4[j]));
                }
            }
        }
        return count;
    }
}
